<template>
	<view>
		<web-view v-if="url" :src="url" @message="handleMessage"></web-view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				url: ''
			}
		},
		onLoad(Option) {
			// #ifdef H5
			window.addEventListener('message', (event)=>{
				const {
					data,
					origin
				} = event;
				
				if (data?.data?.arg) {
					const message = data.data.arg
					if (message.type == 'navigate') {
						const url = `${message.page}?${this.objToQuery(message.params)}`
						console.log(url,'66666666666')
						// 根据接收到的参数进行页面跳转
						uni.redirectTo({
							url: url,
							success: () => {
								console.log('跳转成功')
							},
							fail: (err) => {
								console.error('跳转失败:', err)
								uni.reLaunch({
									url: url,
								})
							}
						})
					}
				}
			}, false);
			// #endif
			// 如果有传入 url 参数则使用传入的，否则使用默认值
			this.url =  decodeURIComponent(Option.url)
			// this.url = 'https://maxgame.ehua.pro/api/epay_return/path_type/1/order_id/MH_202412209910151904199'
		},

		methods: {
			handleMessage(event) {
				console.log('event.detail',event.detail)
				// 接收 H5 发送的消息
				const data = event.detail.data[0]
				if (data.type === 'navigate') {
					var url = `${data.page}?${this.objToQuery(data.params)}`
					console.log(url,'777777777')
					// 根据接收到的参数进行页面跳转
					uni.redirectTo({
						url: url,
						success: () => {
							console.log('跳转成功')
						},
						fail: (err) => {
							console.error('跳转失败:', err)
							uni.reLaunch({
								url: url,
							})
						}
					})
				}
			},

			// 将对象转换为查询字符串
			objToQuery(obj) {
				if (!obj) return ''
				return Object.keys(obj)
					.map(key => `${encodeURIComponent(key)}=${encodeURIComponent(obj[key])}`)
					.join('&')
			}
		}
	}
</script>

<style>

</style>